package com.syh.jn.scm.service.api.supplier.base;

import com.syh.jn.scm.dto.supplier.base.logistics.LogisticsMto;
import com.syh.jn.scm.dto.supplier.base.logistics.LogisticsSto;
import com.syh.jn.scm.dto.supplier.base.logistics.LogisticsVo;
import com.syh.jn.scm.dto.supplier.base.logistics.logisticsAddress.LogisticsAddressMto;
import com.syh.jn.scm.dto.supplier.base.logistics.logisticsAddress.LogisticsAddressSto;
import com.syh.jn.scm.dto.supplier.base.logistics.logisticsAddress.LogisticsAddressVo;
import com.syh.jn.scm.dto.supplier.base.logistics.logisticsTruck.LogisticsTruckMto;
import com.syh.jn.scm.dto.supplier.base.logistics.logisticsTruck.LogisticsTruckSto;
import com.syh.jn.scm.dto.supplier.base.logistics.logisticsTruck.LogisticsTruckVo;
import com.syh.jn.scm.dto.supplier.sale.SaleOrderVo;
import com.syh.jn.scm.service.core.BaseService;

import java.util.List;

public interface LogisticsService extends BaseService<LogisticsSto, LogisticsMto, LogisticsVo, Long> {
  /**
   * 启用
   *
   * @param id
   */
  void enabled(Long id);

  /**
   * 停用
   *
   * @param id
   */
  void disabled(Long id);

  /**
   * 批量保存物流服务地址
   * @param stoList
   */
  void batchSaveAddress(List<LogisticsAddressSto> stoList);

  /**
   * 批量修改物流服务地址
   * @param mtoList
   */
  void batchModifyAddress(List<LogisticsAddressMto> mtoList);

  /**
   * 删除地址
   * @param addressId
   */
  void deleteAddress(Long addressId);

  /**
   * 批量保存物流服务车型
   * @param stoList
   */
  void batchSaveTruck(List<LogisticsTruckSto> stoList);

  /**
   * 批量修改物流服务车型
   * @param mtoList
   */
  void batchModifyTruck(List<LogisticsTruckMto> mtoList);

  /**
   * 删除车型
   * @param truckId
   */
  void deleteTruck(Long truckId);

  /**
   * 根据车型id查询车型
   * @param truckId
   * @return
   */
  LogisticsTruckVo getByTruckId(Long truckId);

  /**
   * 根据地址id获取地址
   * @param addressId
   * @return
   */
  LogisticsAddressVo getByAddressId(Long addressId);

  /**
   * 根据物流id获取地址列表
   * @param logisticsId
   * @return
   */
  List<LogisticsAddressVo> getAddressListById(Long logisticsId);

  /**
   * 根据物流id获取服务服务车型列表
   * @param logisticsId
   * @return
   */
  List<LogisticsTruckVo> getTruckListById(Long logisticsId);
}
